\chapter{Introduction}
\labelchapter{introduction}
%-----------------------
\beginchapter
%-----------------------
\section{Background}
The use of visualized data on computers is constantly increasing since the appearance of digital computing. Visualizing data is used in various fields ranging from simple brain storming on paper to a very professional representation of vital statistics or the visualization of different hierarchies or topologies such as networks, code design, and many other things. There is almost no professional work not including some sort of data visualization.
Data visualization is also used widely in aided navigation like GPS or similar types of navigation.
One very widely used type of data visualization is diagrams. Diagrams are used in many fields like presenting ideas, processes, and software structures.

\paragraph{}
Diagrams abstract the details and present the whole image for the data presented increasing greatly the understandability of this data. The use of diagrams, and the need for them to be look professional, is almost inevitable for all people to present ideas and/or data in an efficient and understandable way. Diagramming tools exist to help individuals as well as organizations to accomplish this task in an effective way. Those tools usually provide a set of standard shapes, as well as custom ones, to help construct the needed diagrams through dragging and dropping those shapes and organizing them in the proper way.

\section{Motivation}
Some people have disabilities that prevent them from using pointing devices efficiently, or even at all, and thus preventing them from using those diagramming tools in the way they need. Mapping the actions needed to create a diagram to voice commands is very unusable because those actions include precise directions and distances.

\paragraph{}
As diagrams are used in many fields, the possibility to automatically creating diagrams that reflect some saved data without human intervention is really needed sometimes. Also for some professionals, the creation of diagrams through dragging or other user friendly methods is inconvenient and slows down their work.


\section{Overview}
The task accomplished in this project should be integrated after the end of the thesis with another two tasks, ``Tools and Strategies for working with Large Diagrams'' and ``Realizing a Force Based Algorithm for Automatic Graph Layout'' developed respectively by Marleine Daoud and Frederic-Gerald Morcos. The integration between the three tasks should result in the project titled OpenGrafik. The main aim of the project is to provide some rare/non-existing tools in current diagramming software integrated together in one unit. OpenGrafik mainly targets developers seeking code examples or COTS chunks of code for reuse in other software.

\paragraph{}
This project is also taking part in the ``Made In Egypt'' (MIE) competition organized by the ``Institute of Electrical and Electronics Engineers'' (IEEE) Gold Egypt. \cite{mie} \cite{ieee} \cite{ieeegoldegypt}

\paragraph{}
The MIE aims at narrowing the gap between the universities/researchers and the professionals working in the market through encouraging Egyptian students to target the market with their Bachelor of Science research and projects. The MIE also encourages the students to achieve output that fulfills one or more of the needs of the Egyptian market.

Conditions for participating at the competition are:
\begin{itemize}
\item Being a Final-year students studying at a governmental or private university.
\item Being ready to base the work on current industrial standards.
\item Being ready to face challenges and overcome them in order to participate in the development of the Egyptian market and industry.
\end{itemize}

\paragraph{}
Having all the conditions applying to us, and willing to contribute something back to the Egyptian Open Source community, as well as the international one, we came up with the idea of OpenGrafik which the work done in this thesis is part of.

\section{Aim of the project}
To allow disabled people to use diagramming tools, and to provide an efficient tool for the professionals, a well designed keyboard support for diagramming has to be implemented.

\paragraph{}
The topic of this thesis is to investigate keyboard support for diagramming tools.
Existing diagramming tools should be compared and evaluated regarding their functionality and accessibility tools related to creating, editing and navigating diagrams using the keyboard. Functions planned to be implemented in those diagramming tools should also be considered. The evaluation should target keyboard support especially designed to navigate and/or edit diagrams.
This project should also include the implementation of new or improved features targeting diagram creating, editing and navigation using the keyboard.

\section{Thesis Overview}
The document contains six chapters, including the introduction and the conclusion, describing keyboard navigation and editing techniques. In\refchapter{the_state_of_the_art}, diagramming tools' state of the art will be discussed as well as a comparison of existing features in multiple tools.\refchapter{problem_description} will state the current state of used tools describing the problems faced by users and the project proposal will be explained. In\refchapter{concepts}, many concepts about each of the navigation and editing techniques will be described. \refchapter{implementation} includes implementation details as well as use cases and tools and technologies used during the implementation phase.\refchapter{conclusion} will conclude this document stating the decisions taken and also mentioning idea about future work.


